package com.neuedu.corejava.ch13;

import java.util.Random;

/**
 * <pre>
 * 20190814
 * 线程类开发步骤
 *  1.编写一个类，继承java.lang.Tread类型
 *  2.重写run方法，在run方法中编写程序的功能代码
 *  3.执行时：实例化线程对象，并调用start方法启动线程
 *  
 * @author admin
 *</pre>
 */
public class TreadDemo extends Thread{

	private int count=0;
	
	@Override
	public void run() {
		while(count<=10){
			System.out.println(getId()+":"+count++);
			try {
				//线程休眠，时间单位是毫秒ms
				//Thread.sleep(2000);//2s
				Thread.sleep(new Random().nextInt(2000));
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		System.out.println("子线程执行完毕");
		
	}
	
	public static void main(String[] args) {
		
		//1.新建线程
		TreadDemo demo=new TreadDemo();
		TreadDemo demo2=new TreadDemo();
		TreadDemo demo3=new TreadDemo();
		
		
		//线程的run方法可以用普通方法调用形式进行调用
		//demo.run();
		
		//2.启动线程调用start方法，线程启动后会进入线程池中等待执行，
		//3.线程执行时，执行的是run（）方法
		//4.线程等待（线程中断）
		//5.run（）方法执行完毕，则线程执行完毕
		demo.start();
		demo2.start();
		demo3.start();
		System.out.println("主线程执行完毕");
		
	}

}
